﻿using System.Collections.Generic;
using Ninject.Modules;
using Soundteller.Audio;
using Soundteller.AudioVisual;
using Soundteller.Phone.Facade.Interfaces;
using Soundteller.Visual;
using Soundteller.Bus;

namespace Soundteller.Phone.Facade
{
    public class FacadeModule : NinjectModule
    {
        public static List<NinjectModule> Configure()
        {
            var modules = new List<NinjectModule>();
            modules.Add(new FacadeModule());
            modules.Add(new AudioModule());
            modules.Add(new VisualModule());
            modules.Add(new AudioVisualModule());
            modules.Add(new BusModule());

            return modules;
        }

        public override void Load()
        {
            Bind<IAudioFacade>().To<AudioFacade>().InSingletonScope();
            Bind<IVisualFacade>().To<VisualFacade>().InSingletonScope();
            Bind<IAudioVisualFacade>().To<AudioVisualFacade>().InSingletonScope();
        }
    }
}
